home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / util / PreHashedMap.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  1.8 KB  |  91 lines

  1. package sun.util;
  2.  
  3. import java.util.AbstractMap;
  4. import java.util.Map;
  5. import java.util.Set;
  6.  
  7. public abstract class PreHashedMap<V> extends AbstractMap<String, V> {
  8.    private final int rows;
  9.    private final int size;
  10.    private final int shift;
  11.    private final int mask;
  12.    // $FF: renamed from: ht java.lang.Object[]
  13.    private final Object[] field_0;
  14.  
  15.    protected PreHashedMap(int var1, int var2, int var3, int var4) {
  16.       this.rows = var1;
  17.       this.size = var2;
  18.       this.shift = var3;
  19.       this.mask = var4;
  20.       this.field_0 = new Object[var1];
  21.       this.init(this.field_0);
  22.    }
  23.  
  24.    protected abstract void init(Object[] var1);
  25.  
  26.    private V toV(Object var1) {
  27.       return (V)var1;
  28.    }
  29.  
  30.    public V get(Object var1) {
  31.       int var2 = var1.hashCode() >> this.shift & this.mask;
  32.       Object[] var3 = this.field_0[var2];
  33.       if (var3 == null) {
  34.          return null;
  35.       } else {
  36.          while(!var3[0].equals(var1)) {
  37.             if (var3.length < 3) {
  38.                return null;
  39.             }
  40.  
  41.             var3 = var3[2];
  42.          }
  43.  
  44.          return (V)this.toV(var3[1]);
  45.       }
  46.    }
  47.  
  48.    public V put(String var1, V var2) {
  49.       int var3 = var1.hashCode() >> this.shift & this.mask;
  50.       Object[] var4 = this.field_0[var3];
  51.       if (var4 == null) {
  52.          throw new UnsupportedOperationException(var1);
  53.       } else {
  54.          while(!var4[0].equals(var1)) {
  55.             if (var4.length < 3) {
  56.                throw new UnsupportedOperationException(var1);
  57.             }
  58.  
  59.             var4 = var4[2];
  60.          }
  61.  
  62.          Object var5 = this.toV(var4[1]);
  63.          var4[1] = var2;
  64.          return (V)var5;
  65.       }
  66.    }
  67.  
  68.    public Set<String> keySet() {
  69.       return new 1(this);
  70.    }
  71.  
  72.    public Set<Map.Entry<String, V>> entrySet() {
  73.       return new 2(this);
  74.    }
  75.  
  76.    // $FF: synthetic method
  77.    static int access$000(PreHashedMap var0) {
  78.       return var0.size;
  79.    }
  80.  
  81.    // $FF: synthetic method
  82.    static int access$100(PreHashedMap var0) {
  83.       return var0.rows;
  84.    }
  85.  
  86.    // $FF: synthetic method
  87.    static Object[] access$200(PreHashedMap var0) {
  88.       return var0.field_0;
  89.    }
  90. }
  91.